package com.warehouse.module.business.service.cargofile;

import java.util.*;
import javax.validation.*;
import com.warehouse.module.business.controller.admin.cargofile.vo.*;
import com.warehouse.module.business.controller.admin.cargoinfo.vo.*;
import com.warehouse.module.business.dal.dataobject.cargofile.CargoFileDO;

/**
 * 货物资料附件 Service 接口
 *
 * @author admin
 */
public interface CargoFileService {

    void createUpdateOrder(CargoInfoSaveReqVO createReqVO);

    /**
     * 收货录入添加附件
     * @param receiptVO
     */
    void receiptInput(CargoReceiptVO receiptVO);

    /**
     * 货物打包
     * @param createReqVO
     */
    void packGoods(CargoPackVO createReqVO);

    /**
     * 仓库出库
     * @param shipmentVO
     */
    void shipmentGoods(CargoShipmentVO shipmentVO);

    /**
     * 报关信息
     * @param cargoCustomsVO
     */
    void addCustoms(CargoCustomsVO cargoCustomsVO);

    /**
     * 创建货物资料附件
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createCargoFile(@Valid CargoFileSaveReqVO createReqVO);

    /**
     * 更新货物资料附件
     *
     * @param updateReqVO 更新信息
     */
    void updateCargoFile(@Valid CargoFileSaveReqVO updateReqVO);

    /**
     * 删除货物资料附件
     *
     * @param id 编号
     */
    void deleteCargoFile(Long id);

    /**
     * 获得货物资料附件
     *
     * @param id 编号
     * @return 货物资料附件
     */
    CargoFileDO getCargoFile(Long id);

    /**
     * 获得货物资料附件分页
     *
     * @param pageReqVO 分页查询
     * @return 货物资料附件分页
     */
    List<CargoFileDO> getCargoFileList(CargoFileReqVO pageReqVO);

}